From b53f25e319d2d862b889260ccff6c8baea664a21 Mon Sep 17 00:00:00 2001 From: Andrew Cooper Date: Mon, 24 Jun 2013 16:47:05 +0100 Subject: [PATCH] tools/libxc: Fix memory leaks in xc_domain_save() Introduces outbuf_free() to mirror the currently existing outbuf_init(). Signed-off-by: Andrew Cooper Acked-by: George Dunlap Acked-by: Ian Campbell --- tools/libxc/xc_domain_save.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tools/libxc/xc_domain_save.c b/tools/libxc/xc_domain_save.c index ff766265df..fbc15e9488 100644 --- a/tools/libxc/xc_domain_save.c +++ b/tools/libxc/xc_domain_save.c @@ -139,6 +139,13 @@ static int outbuf_init(xc_interface *xch, struct outbuf* ob, size_t size) return 0; } +static int outbuf_free(struct outbuf *ob) +{ + free(ob->buf); + ob->buf = NULL; + return 0; +} + static inline int outbuf_write(xc_interface *xch, struct outbuf* ob, void* buf, size_t len) { @@ -2122,6 +2129,8 @@ int xc_domain_save(xc_interface *xch, int io_fd, uint32_t dom, uint32_t max_iter free(pfn_batch); free(pfn_err); free(to_fix); + free(hvm_buf); + outbuf_free(&ob_pagebuf); DPRINTF("Save exit of domid %u with rc=%d\n", dom, rc); -- 2.30.2